package com.tools.genxsd.entity.type;

import com.tools.genxsd.entity.XsdBaseType;
import com.tools.genxsd.entity.XsdDocument;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import static com.tools.genxsd.constant.SysConstant.PREFIX;

/**
 * 数值节点
 * @author: zhoubin
 * @date: 2022/11/15
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class XsdDecimalType extends XsdBaseType {

    /**
     * 节点名
     */
    private String name;

    /**
     * 基本类型
     */
    private String baseType;

    /**
     * 定义所允许的最大的小数位数。必须大于等于0。
     */
    private String fractionDigits;

    /**
     * 定义所允许的阿拉伯数字的精确位数。必须大于0。
     */
    private String totalDigits;

    /**
     * 定义数值的下限。所允许的值必需大于或等于此值。
     */
    private String minInclusive;

    public String getBaseType() {
        if (baseType.contains(PREFIX)) {
            return baseType;
        }
        return PREFIX + baseType;
    }

    @Override
    public void addToDocument(XsdDocument generate) {
        generate.getGenerate().addDecimalType(this);
    }
}
